Recently resolutions in computer graphics have grown enormously. The better resolutions are needed for providing better image quality for different application types, such as games, web applications and alike. Typically vector graphics are produced so that pixels in the screen are divided into sub-pixels having a set of samples for computing the coverage value of the pixel if an edge of a vector graphics polygon overlaps the pixel. Typically this requires more memory for each pixel than the frame buffer comprising the actual rendered image.
Recently mobile devices, such as PDA's and mobile phones have been enabled with multimedia features. This has created a need for enhanced graphics. For example, modern World Wide Web services include Macromedia Flash content that is an example of vector graphics content. A common user using a web service does not even know how the image is produced. However, an impressive graphics experience requires resource demanding functionality and it is obvious that service providers are producing more and more impressive services in the future. The problem of this is that the current mobile devices do have limited resources that cannot provide fluent operation of applications in all conditions. The problem could be solved by introducing more powerful processors and larger memories into mobile devices. However, this leads to an increased size and energy consumption. Thus, this is not desirable as the users want smaller devices having long standby and operating times. Furthermore, there is a plurality of possible features competing from the same resources.
In order to reduce memory requirements in graphics processing a method using tiles has been introduced. In tiling methods the at least portion of the screen or the frame to be displayed is divided into tiles and the tiles are then processed sequentially so that a buffer for storing sub-pixel information needs to be allocated only for the tile size. The tiles are fixed statically to certain locations so that there is no need for extra logic. Then, the graphics processor needs to resolve which polygons need to be processed that fall within the current tile. After resolving the polygons that fall within (or “hit”) the tile are computed and rendered. Once all the polygons have been processed the tile is ready and the processing may be continued in the next tile.
The problem of the tiling as described above is that the objects to be rendered typically hit on a plurality of tiles. Thus, the same polygon may have to be processed again for each tile it hits. For example, an object may hit up to four tiles (or more) as a result of the object crossing the boundaries between tiles and the processing of the polygon needs to be done multiple (e.g., four) times instead of in one single pass. Thus, there is a need for a method and device for providing efficient rendering while maintaining the low memory consumption.